7037a0
@@ -349,14 +349,15 @@
abstract class BaseScanner extends Chore implements HConstants {
     }
     HServerInfo storedInfo = null;
     synchronized (this.master.regionManager) {
-      /*
-       * We don't assign regions that are offline, in transition or were on
-       * a dead server. Regions that were on a dead server will get reassigned
-       * by ProcessServerShutdown
+      /* We don't assign regions that are offline, in transition or were on
+       * a dead server (unless they have an empty serverName which would imply
+       * they haven't been assigned in the first place OR it was closed from
+       * the shell with 'close_region' which deletes server and startcode
+       * from .META. so region gets reassigned). Regions that were on a dead
+       * server will get reassigned by ProcessServerShutdown
        */
       if (info.isOffline() ||
-        this.master.regionManager.
-            regionIsInTransition(info.getRegionNameAsString()) ||
+        (serverName != null && this.master.regionManager.regionIsInTransition(info.getRegionNameAsString())) ||
           (serverName != null && this.master.serverManager.isDead(serverName))) {
         return;
       }
